package com.fxb.learn;

/**
 * @author fangjiaxiaobai
 * @description:
 * @date 2021-11-09 20:18
 */
public class StringEnhanceDemo {

    public static void main(String[] args) {

        demo1();

        demo2();

        demo3();
    }

    /**
     * 按照换行符拆分字符串
     */
    private static void demo3() {
        var strContent = "hello java\rhello jdk11\nhello world\r\nhello everyone";
        // lines方法用 \r 或 \n 或 \r\n 对字符串切割并返回stream对象
        strContent.lines().forEach(System.out::println);
        System.out.println(strContent.lines().count());
    }

    /**
     * 去除空白字符
     */
    private static void demo2() {
        // 全角空格 + 制表符 + 回车 + 换行 + 半角空格 + <内容> + 全角空格 + 制表符 + 回车 + 换行 + 半角空格
        var strTest = "　\t\r\n 你好 jdk11　\t\r\n ";

        // strip 去除两边空白字符
        System.out.println("[" + strTest.strip() + "]");

        // stripLeading 去除开头的空白字符
        System.out.println("[" + strTest.stripLeading() + "]");

        // stripTrailing 去除结尾的空白字符
        System.out.println("[" + strTest.stripTrailing() + "]");
    }

    /**
     * 判断字符串是否为空
     */
    private static void demo1() {
        // 半角空格
        System.out.println(" ".isBlank());

        // 全角空格
        System.out.println("　".isBlank());

        // 半角空格的unicode字符值
        System.out.println("\u0020".isBlank());

        // 全角空格的unicode字符值
        System.out.println("\u3000".isBlank());

        // 制表符
        System.out.println("\t".isBlank());

        // 回车
        System.out.println("\r".isBlank());

        // 换行
        System.out.println("\n".isBlank());

        // 各种空白字符拼接  ===> true
        System.out.println(" \t\r\n　".isBlank());
    }

}
